home *** CD-ROM | disk | FTP | other *** search
-
-
-
- OPEN C Library Procedures OPEN
-
-
-
- NNAAMMEE
- open - open a file for reading or writing, or create a new
- file
-
- SSYYNNOOPPSSIISS
- ##iinncclluuddee <<ssyyss//ffiillee..hh>>
-
- ooppeenn((ppaatthh,, ffllaaggss,, mmooddee))
- cchhaarr **ppaatthh;;
- iinntt ffllaaggss,, mmooddee;;
-
- DDEESSCCRRIIPPTTIIOONN
- _O_p_e_n opens the file _p_a_t_h for reading and/or writing, as
- specified by the _f_l_a_g_s argument and returns a descriptor for
- that file. The _f_l_a_g_s argument may indicate the file is to
- be created if it does not already exist (by specifying the
- O_CREAT flag), in which case the file is created with mode
- _m_o_d_e as described in _c_h_m_o_d(2) and modified by the process'
- umask value (see _u_m_a_s_k(2)).
-
- _P_a_t_h is the address of a string of ASCII characters
- representing a path name, terminated by a null character.
- The flags specified are formed by _o_r'ing the following
- values
-
- O_RDONLY open for reading only
- O_WRONLY open for writing only
- O_RDWR open for reading and writing
- O_APPEND append on each write
- O_CREAT create file if it does not exist
- O_TRUNC truncate size to 0
- O_EXCL error if create and file exists
- O_MASTER open pseudo-device as master
- O_PFS_MASTER open pseudo-file-system as master
-
- Opening a file with O_APPEND set causes each write on the
- file to be appended to the end. If O_TRUNC is specified and
- the file exists, the file is truncated to zero length. If
- O_EXCL is set with O_CREAT, then if the file already exists,
- the open returns an error. This can be used to implement a
- simple exclusive access locking mechanism. If O_EXCL is set
- and the last component of the pathname is a symbolic link,
- the open will fail even if the symbolic link points to a
- non-existent name.
-
- The O_MASTER and O_PFS_MASTER flags are used by server
- processes implementing pseudo-devices and pseudo-file-
- systems (respectively). See the man pages _P_d_e_v and _P_f_s for
- details on how these flags are used.
-
- Upon successful completion a non-negative integer termed a
- file descriptor is returned. The file pointer used to mark
-
-
-
- Sprite v1.0 May 14, 1986 1
-
-
-
-
-
-
- OPEN C Library Procedures OPEN
-
-
-
- the current position within the file is set to the beginning
- of the file.
-
- The new descriptor is set to remain open across _e_x_e_c_v_e sys-
- tem calls; see _c_l_o_s_e(2).
-
- The system imposes a limit on the number of file descriptors
- open simultaneously by one process. _G_e_t_d_t_a_b_l_e_s_i_z_e(2)
- returns the current system limit.
-
- EERRRROORRSS
- The named file is opened unless one or more of the following
- are true:
-
- [ENOTDIR] A component of the path prefix is not a
- directory.
-
- [EINVAL] The pathname contains a character with the
- high-order bit set.
-
- [ENAMETOOLONG] A component of a pathname exceeded 255 char-
- acters, or an entire path name exceeded 1023
- characters.
-
- [ENOENT] O_CREAT is not set and the named file does
- not exist.
-
- [ENOENT] A component of the path name that must exist
- does not exist.
-
- [EACCES] Search permission is denied for a component
- of the path prefix.
-
- [EACCES] The required permissions (for reading and/or
- writing) are denied for the named flag.
-
- [EACCES] O_CREAT is specified, the file does not
- exist, and the directory in which it is to be
- created does not permit writing.
-
- [ELOOP] Too many symbolic links were encountered in
- translating the pathname.
-
- [EISDIR] The named file is a directory, and the argu-
- ments specify it is to be opened for writ-
- ting.
-
- [EROFS] The named file resides on a read-only file
- system, and the file is to be modified.
-
- [EMFILE] The system limit for open file descriptors
- per process has already been reached.
-
-
-
- Sprite v1.0 May 14, 1986 2
-
-
-
-
-
-
- OPEN C Library Procedures OPEN
-
-
-
- [ENFILE] The system file table is full.
-
- [ENXIO] The named file is a character special or
- block special file, and the device associated
- with this special file does not exist.
-
- [ENOSPC] O_CREAT is specified, the file does not
- exist, and the directory in which the entry
- for the new file is being placed cannot be
- extended because there is no space left on
- the file system containing the directory.
-
- [ENOSPC] O_CREAT is specified, the file does not
- exist, and there are no free inodes on the
- file system on which the file is being
- created.
-
- [EDQUOT] O_CREAT is specified, the file does not
- exist, and the directory in which the entry
- for the new fie is being placed cannot be
- extended because the user's quota of disk
- blocks on the file system containing the
- directory has been exhausted.
-
- [EDQUOT] O_CREAT is specified, the file does not
- exist, and the user's quota of inodes on the
- file system on which the file is being
- created has been exhausted.
-
- [EIO] An I/O error occurred while making the direc-
- tory entry or allocating the inode for
- O_CREAT.
-
- [ETXTBSY] The file is a pure procedure (shared text)
- file that is being executed and the _o_p_e_n call
- requests write access.
-
- [EFAULT] _P_a_t_h points outside the process's allocated
- address space.
-
- [EEXIST] O_CREAT and O_EXCL were specified and the
- file exists.
-
- [EOPNOTSUPP] An attempt was made to open a socket (not
- currently implemented).
-
- SSEEEE AALLSSOO
- chmod(2), close(2), dup(2), getdtablesize(2), lseek(2),
- read(2), write(2), umask(2), fileno(3)
-
-
-
-
-
-
- Sprite v1.0 May 14, 1986 3
-
-
-
-